The present invention relates to three-dimensional-model processing apparatuses, three-dimensional-model processing methods, and computer programs. More specifically, the present invention relates to a three-dimensional-model processing apparatus, a three-dimensional-model processing method, and a computer program for displaying three-dimensional objects on a display of a personal computer or the like, and executing various processing such as moving the three-dimensional objects or changing the shapes of the three-dimensional objects in accordance with user's operations, with which ease of user's operations is improved by presenting type of processing that can be executed or expected processing result based on, for example, spatial relationship among the three-dimensional objects on the display.
Systems that display three-dimensional images on displays and that allow users to manipulate the three-dimensional images on the displays are used in various information processing apparatuses such as game machines, computers, computer-aided design (CAD) machines, or computer graphics (CG) processing apparatuses.
When executing various operations on various objects (three-dimensional objects) included in a three-dimensional image shown on a display, such as movement, rotation, joining, or detachment of objects, ordinary existing software such as CG software or three-dimensional CAD software specifies a three-dimensional object to be processed using an input device such as a mouse, a keyboard, or a two-dimensional tablet.
In conventional apparatuses, devices that allow input of information specifying a two-dimensional or one-dimensional position, such as a mouse, a keyboard, or a two-dimensional tablet, have been used to specify objects. Thus, when specifying a three-dimensional object on a display, a user specifies a position of the three-dimensional object in the form of two-dimensional or one-dimensional information. After specifying an object, the user executes various processing on the object, such as pickup, movement, rotation, or joining with another three-dimensional model.
However, a mouse, a keyboard, a two-dimensional tablet, or the like, is a device for inputting two-dimensional or one-dimensional information, so that operation based on a three-dimensional space shown on a display is difficult. Thus, objects must be processed based on user input under restrictions; for example, the direction of movement of three-dimensional objects is limited within a plane, or the axis of rotation is fixed.
Under such restrictions, for example, when an object is moved while rotating it, a plurality of operations must be repeated. For example, the object is first moved in a restricted plane, the object is then rotated about a fixed axis, and the procedure is repeated. These operations cause the user to feel a sense of unnaturalness in comparison with operations in the real world.
As an approach for overcoming the problem described above, a three-dimensional-model processing apparatus having an input device that allows input of three-dimensional position and attitude information is disclosed, for example, in Japanese Unexamined Patent Application Publication No. 2001-307134. According to the art disclosed, processing on three-dimensional objects shown on a display, such as changing shape or coloring surface, is executed using the three-dimensional position and attitude input device.
Various implementations of such a three-dimensional position and attitude input device, including a magnetic implementation based on a magnetic sensor.
The magnetically implemented input device has an operation object that includes a coil and that can be moved freely in a three-dimensional space by a user's hand. The operation object is moved in a magnetic space defined by a magnetic field generated by a magnetic-field generator, and a current induced on the coil is measured, and position and attitude of the operating device is measured and the information obtained is input as three-dimensional information.
Various other implementations of such a three-dimensional position and attitude measuring device have been proposed, including an ultrasonic implementation, a mechanical implementation, and an optical implementation. In the ultrasonic implementation, an operation object includes an ultrasonic transmitter, and three-dimensional measurement is carried out based on acoustic pressure or arrival time of ultrasonic wave received by the operation object. In the mechanical implementation, an operation object is connected to a mechanically movable member such as a multi-joint arm, and three-dimensional position information of the operation object is determined based on the motion thereof. In the optical implementation, three or more markers are provided on an operation object, the markers on the operation object are imaged by a camera, and three-dimensional information of the operation object is obtained based on the captured image.
By using such a three-dimensional position and attitude measurement system, input of three-dimensional information associated with a three-dimensional space shown on a display is allowed. Thus, a user is allowed to perform processing on three-dimensional objects on the display without feeling a sense of unnaturalness in comparison with operations in the real world.
However, even with such a three-dimensional-information inputting device, the display itself is a two-dimensional plane. Thus, a user still has difficulty in recognition of an image on the display with respect to the depth direction. More specifically, for example, operations for butting or joining a plurality of three-dimensional objects on the display with each other are difficult.
More specifically, when a plurality of three-dimensional objects on the display is butted or joined with each other, the plurality of three-dimensional objects must be defined at the same coordinate position in an XYZ space. Assuming that the display plane is the XY plane, it is easy for the user to move a plurality of objects at the same position on the XY plane while watching the objects on the display. However, it is difficult for the user to match the positions of the objects with respect to the depth direction (Z direction) while watching the objects on the display. For example, when two objects a and b exist, it is not easy to recognize from the screen that the object a is in front of the object b.
Furthermore, when a plurality of objects is joined to form a combined object, the objects must be observed from various angles to determine parts to be joined. A conventional three-dimensional-information input device only allows manipulation of a single object. After a single object is manipulated by the three-dimensional-information input device to join it with another object, when the joined objects as viewed from a different direction are displayed, the view often differs from an expected view. In order to join objects as desired, complex and laborious processing is needed, such as alternately manipulating the object to be operated and the object to be joined and changing viewpoint to check the result of joining.
Furthermore, although a method of simultaneously displaying images as viewed from different directions and manipulating objects while referring to the images simultaneously, it requires sophisticated skills to manipulate objects while referring to a plurality of images simultaneously.
Furthermore, according to the art disclosed in Japanese Unexamined Patent Application Publication No. 2001-307134, a target object on which some processing is to be executed and an editing object for executing processing on the target object are simultaneously operated with both hands. Thus, intuitive operations are allowed, such as tilting the target object at an angle desired by the user and performing operations by the editing object. However, since both hands are used in the space, the operations are affected by hand shake or the like. Furthermore, although flexibility is increased, delicate control is difficult. Furthermore, these factors depend on error of the three-dimensional position and attitude measurement system used, so that the difficulty of operations increases as error becomes larger.